﻿#nullable enable

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace PHMEE.EnergyEfficiency;

public interface IVesselEEInfoAppService
{
    // /// <summary>
    // /// 船舶即时能效信息
    // /// </summary>
    // /// <param name="vesselId"></param>
    // /// <returns></returns>
    // Task<VesselEEInfoDto> CurrentEEInfoAsync(Guid vesselId);

    /// <summary>
    /// 年度 EEOI
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="year"></param>
    /// <returns></returns>
    Task<EEOIDto> AnnualEEOI(Guid vesselId, int? year);
    
    /// <summary>
    /// 当前航次 EEOI
    /// </summary>
    /// <param name="vesselId"></param>
    /// <returns></returns>
    Task<EEOIDto> CurrentVoyageEEOI(Guid vesselId);

    /// <summary>
    /// EEOI 能效对比
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="startDate"></param>
    /// <param name="endDate"></param>
    /// <returns></returns>
    Task<IReadOnlyList<EEOICIIComparisonTimeSeriesDatum>> EEOICompareDataAsync(Guid vesselId, DateTime startDate,
        DateTime endDate);

    /// <summary>
    /// EEOI 能效对比（范围为年）
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="year"></param>
    /// <returns></returns>
    Task<IReadOnlyList<EEOICIIComparisonTimeSeriesDatum>> EEOICompareDataByYearAsync(Guid vesselId, int year);

    /// <summary>
    /// 能效查询-所选时间段的能效信息
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="startDate"></param>
    /// <param name="endDate"></param>
    /// <returns></returns>
    Task<DateRangeEEDataDto> DateRangeEEData(Guid vesselId,
        DateTime startDate, DateTime endDate);
}